package com.strange.mdl.module.mdl.controller.admin.videoinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 视频信息新增/修改 Request VO")
@Data
public class MdlVideoInfoSaveReqVO {

    @Schema(description = "视频ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29918")
    private Long id;

    @Schema(description = "视频标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "视频标题不能为空")
    private String title;

    @Schema(description = "视频描述", example = "随便")
    private String description;

    @Schema(description = "封面图片URL（OSS地址）", example = "https://www.iocoder.cn")
    private String coverUrl;

    @Schema(description = "视频文件URL（OSS地址）", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
    @NotEmpty(message = "视频文件URL（OSS地址）不能为空")
    private String videoUrl;

    @Schema(description = "视频时长（秒）")
    private Integer duration;

    @Schema(description = "文件大小（字节）")
    private Long fileSize;

    @Schema(description = "视频状态：0-下架，1-发布", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "视频状态：0-下架，1-发布不能为空")
    private Integer status;

    @Schema(description = "发布时间")
    private LocalDateTime publishTime;

    @Schema(description = "播放次数", example = "4903")
    private Long playCount;

    @Schema(description = "点赞数", example = "2920")
    private Long likeCount;

    @Schema(description = "收藏数", example = "17155")
    private Long collectCount;

    @Schema(description = "分享数", example = "18821")
    private Long shareCount;

}